package cn.vehicle.annotations;

// 该注解会被包含在 Javadoc 中，方便生成接口文档时展示
import java.lang.annotation.*;

/**
 * 权限校验忽略注解
 * <p>
 * 用于标记在 Controller 的类或方法上，表示该接口无需经过权限校验。
 * 主要用于开放接口、登录接口、或公共资源访问场景。
 * </p>
 *
 * <p>使用场景：</p>
 * <ul>
 *   <li>登录接口（如 /login）；</li>
 *   <li>无需用户登录即可访问的接口（如健康检查、静态资源访问等）；</li>
 *   <li>系统内部调用接口。</li>
 * </ul>
 *
 * <p>说明：</p>
 * <ul>
 *   <li>可作用于类或方法级别；</li>
 *   <li>被标记的接口将在 {@link cn.vehicle.interceptor.PermissionInterceptor} 中跳过权限校验逻辑。</li>
 * </ul>
 */
// 该注解会被包含在 Javadoc 中，方便生成接口文档时展示
@Documented
// 运行时保留注解信息，便于通过反射机制在拦截器中检测
@Retention(RetentionPolicy.RUNTIME)
// 注解可用于方法或类上，支持单个方法或整个 Controller 作用范围
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface NoAuthCheck {
}
